home *** CD-ROM | disk | FTP | other *** search
/ Pesquisa Dirigida / Pesquisa Dirigida.iso / JOGOS / mini_putt2.swf / scripts / DefineSprite_201 / frame_4 / DoAction.as
Text File  |  2005-01-07  |  6KB  |  274 lines

  1. if(xdir < 0)
  2. {
  3.    xcnt = xdir * -1;
  4. }
  5. else
  6. {
  7.    xcnt = xdir;
  8. }
  9. if(ydir < 0)
  10. {
  11.    ycnt = ydir * -1;
  12. }
  13. else
  14. {
  15.    ycnt = ydir;
  16. }
  17. if(xcnt < ycnt)
  18. {
  19.    cnt = ycnt;
  20. }
  21. else
  22. {
  23.    cnt = xcnt;
  24. }
  25. ymod = ydir / cnt;
  26. xmod = xdir / cnt;
  27. x_old2 = ball._x;
  28. y_old2 = ball._y;
  29. i = 0;
  30. while(i < cnt)
  31. {
  32.    x_old = ball._x;
  33.    y_old = ball._y;
  34.    ball._x += xmod;
  35.    s = 1;
  36.    while(ss >= s)
  37.    {
  38.       if(ball.hittest(eval("s" add s)))
  39.       {
  40.          tellTarget("../sound")
  41.          {
  42.             gotoAndStop("bounce");
  43.          }
  44.          ball._x = x_old;
  45.          xmod *= -1;
  46.          xdir *= -1;
  47.       }
  48.       s++;
  49.    }
  50.    ball._y += ymod;
  51.    t = 1;
  52.    while(ts >= t)
  53.    {
  54.       if(ball.hittest(eval("t" add t)))
  55.       {
  56.          tellTarget("../sound")
  57.          {
  58.             gotoAndStop("bounce");
  59.          }
  60.          ball._y = y_old;
  61.          ymod *= -1;
  62.          ydir *= -1;
  63.       }
  64.       t++;
  65.    }
  66.    dr = 0;
  67.    while(drs >= dr)
  68.    {
  69.       if(ball.hittest(eval("dr" add dr)))
  70.       {
  71.          if(eval("on_dr" add dr) != "y")
  72.          {
  73.             tellTarget("../sound")
  74.             {
  75.                gotoAndStop("bounce");
  76.             }
  77.             x_anc = eval("dr" add dr add "._x");
  78.             y_anc = eval("dr" add dr add "._y");
  79.             if(ball._y < y_anc)
  80.             {
  81.                area = "t";
  82.             }
  83.             else
  84.             {
  85.                area = "b";
  86.             }
  87.             if(ball._x < x_anc)
  88.             {
  89.                area = area add "l";
  90.             }
  91.             else
  92.             {
  93.                area = area add "r";
  94.             }
  95.             if(area == "tl")
  96.             {
  97.                if(ymod == 0 or xmod == 0)
  98.                {
  99.                   ymod2 = xmod * -1;
  100.                   xmod2 = ymod * -1;
  101.                }
  102.                else if(0 < xmod and 0 < ymod)
  103.                {
  104.                   ymod2 = xmod * -1;
  105.                   xmod2 = ymod * -1;
  106.                }
  107.                else if(0 < xmod and ymod < 0)
  108.                {
  109.                   ymod2 = xmod * -1;
  110.                   xmod2 = ymod * -1;
  111.                }
  112.                else if(xmod < 0 and 0 < ymod)
  113.                {
  114.                   ymod2 = xmod * -1;
  115.                   xmod2 = ymod * -1;
  116.                }
  117.             }
  118.             else if(area == "tr")
  119.             {
  120.                if(ymod == 0 or xmod == 0)
  121.                {
  122.                   ymod2 = xmod * 1;
  123.                   xmod2 = ymod * 1;
  124.                }
  125.                else if(0 < xmod and 0 < ymod)
  126.                {
  127.                   ymod2 = xmod * 1;
  128.                   xmod2 = ymod * 1;
  129.                }
  130.                else if(xmod < 0 and 0 < ymod)
  131.                {
  132.                   ymod2 = xmod * 1;
  133.                   xmod2 = ymod * 1;
  134.                }
  135.                else if(xmod < 0 and ymod < 0)
  136.                {
  137.                   ymod2 = xmod * 1;
  138.                   xmod2 = ymod * 1;
  139.                }
  140.             }
  141.             else if(area == "bl")
  142.             {
  143.                if(ymod == 0 or xmod == 0)
  144.                {
  145.                   ymod2 = xmod * 1;
  146.                   xmod2 = ymod * 1;
  147.                }
  148.                else if(0 < xmod and 0 < ymod)
  149.                {
  150.                   ymod2 = xmod * 1;
  151.                   xmod2 = ymod * 1;
  152.                }
  153.                else if(0 < xmod and ymod < 0)
  154.                {
  155.                   ymod2 = xmod * 1;
  156.                   xmod2 = ymod * 1;
  157.                }
  158.                else if(xmod < 0 and ymod < 0)
  159.                {
  160.                   ymod2 = xmod * 1;
  161.                   xmod2 = ymod * 1;
  162.                }
  163.             }
  164.             else if(ymod == 0 or xmod == 0)
  165.             {
  166.                ymod2 = xmod * -1;
  167.                xmod2 = ymod * -1;
  168.             }
  169.             else if(0 < xmod and ymod < 0)
  170.             {
  171.                ymod2 = xmod * -1;
  172.                xmod2 = ymod * -1;
  173.             }
  174.             else if(xmod < 0 and 0 < ymod)
  175.             {
  176.                ymod2 = xmod * -1;
  177.                xmod2 = ymod * -1;
  178.             }
  179.             else if(xmod < 0 and ymod < 0)
  180.             {
  181.                ymod2 = xmod * -1;
  182.                xmod2 = ymod * -1;
  183.             }
  184.             ymod = ymod2;
  185.             xmod = xmod2;
  186.             ball._x += xmod;
  187.             ball._y += ymod;
  188.             ydir = ymod * cnt;
  189.             xdir = xmod * cnt;
  190.             checktimes += 1;
  191.             set("on_dr" add dr,"y");
  192.             tellTarget("dr" add dr)
  193.             {
  194.                gotoAndStop(1);
  195.             }
  196.          }
  197.       }
  198.       else
  199.       {
  200.          set("on_dr" add dr,"n");
  201.       }
  202.       dr++;
  203.    }
  204.    onhill = "no";
  205.    hr = 1;
  206.    while(hrs >= hr)
  207.    {
  208.       if(ball.hittest(eval("hr" add hr)))
  209.       {
  210.          xdir += hill;
  211.          onhill = "yes";
  212.       }
  213.       hr++;
  214.    }
  215.    hl = 1;
  216.    while(hls >= hl)
  217.    {
  218.       if(ball.hittest(eval("hl" add hl)))
  219.       {
  220.          xdir -= hill;
  221.          onhill = "yes";
  222.       }
  223.       hl++;
  224.    }
  225.    hu = 1;
  226.    while(hus >= hu)
  227.    {
  228.       if(ball.hittest(eval("hu" add hu)))
  229.       {
  230.          ydir -= hill;
  231.          onhill = "yes";
  232.       }
  233.       hu++;
  234.    }
  235.    hd = 1;
  236.    while(hds >= hd)
  237.    {
  238.       if(ball.hittest(eval("hd" add hd)))
  239.       {
  240.          ydir += hill;
  241.          onhill = "yes";
  242.       }
  243.       hd++;
  244.    }
  245.    i++;
  246. }
  247. speed = ydir * ydir + xdir * xdir;
  248. if(speed < 20)
  249. {
  250.    if(ball.hittest(hole))
  251.    {
  252.       gotoAndPlay(6);
  253.    }
  254. }
  255. else if(speed < 90)
  256. {
  257.    if(ball.hittest(hole))
  258.    {
  259.       ydir *= 0.7 + random(6) / 10;
  260.       xdir *= 0.7 + random(6) / 10;
  261.    }
  262. }
  263. if(0.02 < speed)
  264. {
  265.    ydir *= 0.96;
  266.    xdir *= 0.95;
  267. }
  268. else
  269. {
  270.    ydir = 0;
  271.    xdir = 0;
  272.    prevFrame();
  273. }
  274.